Classic OPC is based on Microsoft COM/DCOM, which has originally been designed for 32-bit world, and later ported to and enhanced for 64-bit systems. There are several issues with COM/DCOM on 64-bit systems and some additional issues specific to OPC.
The most notable issue is the fact that browsing for OPC servers does not always fully work between 32-bit and 64-bit worlds. This is because the old OPCEnum component (provided earlier by OPC Foundation and still being installed with some servers) runs in 32-bit process and only enumerates 32-bit OPC servers. Consequently, native 64-bit OPC servers may be “invisible” for browsing from 32-bit OPC clients, although it may still be possible to connect to them, provided that the OPC client has OPC server’s ProgID or CLSID.
Depending on how the OPC server registers itself, the opposite behavior is also possible: The server might be visible in the list of servers, but no connection to it possible from 64-bit processes.
Local out-of-process server (.EXE-s) are, in generable, usable across bitness boundaries (32-bit servers from 64-bit clients and vice versa), but proper setup and registration is needed (see above), which is not always the case. Local in-process servers (.DLL-s), which are relatively rare, cannot be directly used across bitness boundaries. A possible workaround is to use COM+ configuration and set them to run in a surrogate process.